Pristup k sdilene slozce pod cizim uctem

Otázka od: Ludek ZITA

11. 10. 2004 18:22

Zdravim,
Mam tento problem.
Sit se Serverem W2000 server Active directory a stanice W2000 Prof.
Na serveru existuji ruzne sdilene slozky s ruznymi pristupovymi pravy
pro ruzne uzivatele.
Zridim sdilenou slozku sss kam ma pristup pro cteni a zapis jen uzivatel
xxx s heslem hhh.
Pak potrebuji aby JINY uzivatel spustil muj program ktery si otevre
slozku sss pomoci jmena a hesla xxx a hhh a zapise tam soubor. Pak hned
zavre pristup ke slozce.
Pouzivam toto :

function Connect(const Path, UserName, Password: string): boolean;
var
  NetRes: TNetResource;
  dw: DWORD;
begin
  ZeroMemory(@NetRes, sizeof(NetRes));
  NetRes.dwType := RESOURCETYPE_ANY;
  NetRes.dwDisplayType := RESOURCEDISPLAYTYPE_DOMAIN;
  NetRes.lpLocalName := PChar('');
  NetRes.lpRemoteName := PChar(FileUtil.RemoveBackSlash(Path));
  NetRes.lpProvider := nil;
  dw := WNetAddConnection2(NetRes, PChar(Password), PChar(UserName), 0);
  if (dw <> NO_ERROR) then
  begin
    Result := False;
    exit;
  end
  else
    Result := True;
end;

function DisConnect(const Path: string): boolean;
var
  dw: DWORD;
begin
  dw := WNetCancelConnection(PChar(FileUtil.RemoveBackSlash(Path)),
True);
  Result := (dw = NO_ERROR);
end;

Vsechno funguje naprosto squele do doby nez se uzivatel rozhodne otevrit
nejaky soubor v jine sdilene slozce na serveru (pochopitelne uz noramlne
se svymi pravy). Od te chvile az do resetu pocitace se do slozky sss s
jmenem a heslem xxx a hhh nedostanu. Hlasi mi to jakysi konflikt v
povereni ci co (ERROR_SESSION_CREDENTIAL_CONFLICT = 1219).

Jak z toho ven ?

Predem diky.

Ludek

P.S. Prihlaseny uzivatel pochopitelne do slozky sss nema pristupova
prava